Skill

match এক্সপ্রেশন এবং এর ব্যবহার

Control Flow (কন্ট্রোল ফ্লো) - রাস্ট (Rust) - Computer Programming

796

match এক্সপ্রেশন কী?

রাস্টের match এক্সপ্রেশন একটি শক্তিশালী কন্ট্রোল ফ্লো স্টেটমেন্ট, যা এক বা একাধিক প্যাটার্নের সাথে একটি ভ্যালুর তুলনা করে। এটি সি, সি++, জাভা বা পিথনের switch স্টেটমেন্টের মতো মনে হতে পারে, তবে match অনেক বেশি শক্তিশালী এবং নমনীয়। এর সাহায্যে আপনি একাধিক প্যাটার্নের উপর ভিত্তি করে সহজে সিদ্ধান্ত নিতে পারেন।

match এক্সপ্রেশন এর মূল বৈশিষ্ট্য:

  1. প্যাটার্ন ম্যাচিং: match এক্সপ্রেশন অনেক ধরনের প্যাটার্ন (যেমন: লিটারাল, রেঞ্জ, টুপল, স্ট্রাকচার, enum) সাপোর্ট করে।
  2. অটো ফ্যালিব্যাক: যদি কোনো প্যাটার্ন মেলানো না যায়, তবে ডিফল্ট প্যাটার্ন ব্যবহার করা যেতে পারে।
  3. সুরক্ষা: এটি কোডের ভ্যালিডিটি নিশ্চিত করে, কারণ সমস্ত প্যাটার্নের ক্ষেত্রে কোডটি চেক করা হয়। এর ফলে ভুলের সম্ভাবনা কমে যায়।

match এক্সপ্রেশন এর সাধারণ সঠিক ব্যবহার

উদাহরণ ১: সাধারণ match এক্সপ্রেশন

fn main() {
    let number = 7;

    match number {
        1 => println!("One"),
        2 => println!("Two"),
        3 => println!("Three"),
        _ => println!("Other"),  // _ wildcard: any value that doesn't match above
    }
}

ব্যাখ্যা:
এখানে number এর মান ৭, তাই match এক্সপ্রেশনটি _ => println!("Other") তে চলে যাবে। _ একটি wildcard প্যাটার্ন, যা অন্য কোনো প্যাটার্ন না মেলালে ব্যবহৃত হয়।

উদাহরণ ২: রেঞ্জের সাথে match ব্যবহার

fn main() {
    let number = 10;

    match number {
        1..=5 => println!("Between 1 and 5"),  // Range from 1 to 5 (inclusive)
        6..=10 => println!("Between 6 and 10"), // Range from 6 to 10 (inclusive)
        _ => println!("Other"),
    }
}

ব্যাখ্যা:
এখানে 1..=5 এবং 6..=10 রেঞ্জগুলো নির্দিষ্ট করা হয়েছে। ১০ এর মধ্যে থাকা মান 6..=10 প্যাটার্নে মেলে এবং "Between 6 and 10" আউটপুট হবে।

উদাহরণ ৩: Enum এর সাথে match ব্যবহার

enum Color {
    Red,
    Green,
    Blue,
}

fn main() {
    let color = Color::Green;

    match color {
        Color::Red => println!("Red color"),
        Color::Green => println!("Green color"),
        Color::Blue => println!("Blue color"),
    }
}

ব্যাখ্যা:
এখানে Color নামক enum ব্যবহার করা হয়েছে। match এক্সপ্রেশনটি নির্দিষ্ট enum ভ্যারিয়েবলের মান অনুসারে বিভিন্ন আউটপুট প্রিন্ট করবে। উদাহরণে, Color::Green মেলানো হবে এবং "Green color" আউটপুট হবে।

উদাহরণ ৪: টুপল (Tuple) এর সাথে match ব্যবহার

fn main() {
    let point = (3, 5);

    match point {
        (0, 0) => println!("Origin"),
        (0, y) => println!("On the y axis at {}", y),
        (x, 0) => println!("On the x axis at {}", x),
        (x, y) => println!("Point at ({}, {})", x, y),
    }
}

ব্যাখ্যা:
এখানে (3, 5) নামক টুপল ব্যবহার করা হয়েছে। match এক্সপ্রেশনটি টুপলটির প্রতিটি উপাদান চেক করবে এবং সঠিক প্যাটার্নের সাথে মেলালে সেই প্যাটার্নের কোড এক্সিকিউট হবে। Point at (3, 5) আউটপুট হবে।

উদাহরণ ৫: match এর সাথে Option ব্যবহার

Option টাইপটি রাস্টের একটি বিশেষ ডেটা টাইপ, যা Some বা None এর মধ্যে একটি মান ধারণ করতে পারে।

fn main() {
    let some_number = Some(10);

    match some_number {
        Some(i) => println!("Got a number: {}", i),
        None => println!("No number"),
    }
}

ব্যাখ্যা:
এখানে Some(10) ভ্যালু দেওয়া হয়েছে। তাই Some(i) প্যাটার্নটি মেলানো হবে এবং "Got a number: 10" আউটপুট হবে।

উদাহরণ ৬: match এবং Ref ব্যবহার

match এক্সপ্রেশনটি & (reference) এর সাথে খুবই কার্যকরী হতে পারে।

fn main() {
    let value = 42;

    match &value {
        &42 => println!("It's 42"),
        _ => println!("Not 42"),
    }
}

ব্যাখ্যা:
এখানে &value দ্বারা ভ্যালুকে রেফারেন্স হিসেবে পাস করা হচ্ছে এবং match এক্সপ্রেশনটি সেই রেফারেন্সে মেলানো মান চেক করে। এই উদাহরণে আউটপুট "It's 42" হবে।


match এর কিছু গুরুত্বপূর্ণ সুবিধা:

  1. প্যাটার্ন ম্যাচিং: match এক্সপ্রেশন প্যাটার্ন মেলানোর ক্ষেত্রে অনেক বেশি শক্তিশালী এবং নমনীয়।
  2. নিরাপত্তা: এটি সব প্যাটার্ন চেক করে, যাতে ভুলে কোন মান ছেড়ে না যায় (যেমন, না দেখানো কিছু প্যাটার্ন থাকলে কম্পাইলার সতর্ক করবে)।
  3. ট্রান্সপারেন্সি এবং কোডের পরিষ্কারতা: অনেক ধরনের শর্ত এবং প্যাটার্ন খুব সহজে চিহ্নিত করা যায়, ফলে কোড খুবই পরিষ্কার এবং পাঠযোগ্য হয়।

সারাংশ

রাস্টের match এক্সপ্রেশন একটি অত্যন্ত শক্তিশালী কন্ট্রোল ফ্লো ফিচার যা বিভিন্ন ধরনের প্যাটার্ন এবং কন্ডিশন চেক করতে সাহায্য করে। এটি সাধারণ switch স্টেটমেন্টের চেয়ে অনেক বেশি নমনীয় এবং শক্তিশালী, কারণ এটি শুধুমাত্র সিম্পল মান না, বরং রেঞ্জ, টুপল, enum এবং আরও অনেক ধরনের প্যাটার্নের সাথে কাজ করতে পারে। match এক্সপ্রেশন রাস্টের নিরাপত্তা এবং পারফরম্যান্স বৃদ্ধিতেও গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...